Computer-aided-manufacturing (CAM) involves the precise machining, under the control of numerical data provided by a computer system, of a manufactured part (a solid object) from a raw workpiece. CAM systems are used widely in the manufacturing industry to produce everything from plastic toys to turbo fan blades for jet engines. The numerical control (NC) data used by a CAM system to control the machining process is typically generated based on a geometrical description of the desired part created using a computer-aided-design (CAD) system. The NC data itself guides a machine tool, or cutter, to cut portions away from a workpiece until the part takes shape in accordance with its geometrical CAD description.
An extraordinary degree of precision is required to properly position the cutter relative to the part during the machining process. If the cutter is oriented too far into the part, it may gouge the part, rendering it unusable scrap. If the cutter leaves excess material on the part, the required tolerances may be exceeded, to similar effect. Moreover, since many modern manufactured parts must meet tolerances in the thousandths of millimeters, very little margin of error is available between gouging and undue excess.
Prior art CAM systems have developed various techniques to provide precise positioning of the cutter to the part surface. In general, those techniques that are accurate enough to perform precision manufacturing recognize a distinction between the normal (perpendicular) distance to a surface and the shortest distance to that surface. By using the normal distance, the CAM system can accurately account not only for the contours of the part, but also for the dimensions of the cutter. With this information the cutter can be positioned precisely to an edge or a side of a surface, or a starting point or endpoint of a cut by directing the cutter TO the surface, ON the surface, or PAST the surface.
One prior art cutter positioning technique involves describing the required path of the cutter using one surface and one point on the surface. In this technique, known as surface-driven positioning, a normal is calculated corresponding to the surface at the reference point, and the cutter is positioned by moving it directly from its initial position toward the reference point until it reaches the surface. Then a new reference point is chosen and the process repeated until the surface is fully developed. While this approach is generally adequate to machine a single surface, it becomes inaccurate in cases where the cutter must be positioned to more than one surface simultaneously, as where three surfaces meet to form an inside corner. In such cases, surface-driven positioning tends to gouge the additional surface(s) since by its definition (one surface and one point) it does not carry enough information to track the additional surfaces. It also can gouge even the first surface in some cases, since the cutter shape and additional contours of the first surface unrelated to the current positioning task are not taken into account.
Another technique for positioning a cutter to a part surface involves the use of three surfaces, two to describe the cutter path and a third to describe the desired stopping point. This technique, used by the APT (Automatically Programmed Tool) machine tool programming language, employs the normal distance from the cutter to each surface. At the surface point on each surface where the normal distance is obtained, a surface normal and a tangent plane is constructed. The cutter is positioned in contact with the three tangent planes simultaneously, and the process is repeated until the cutter is in contact with all three surfaces. To compute the normal distance to a surface, a process known as Unit Normal and Directed Distance (UNDD) is executed. FIGS. 1(a)-1(e) illustrate the geometry involved in the UNDD computations. Center 108 is computed for cutter 102 along axis of rotation 104. Cutter center 108 is used to compute the shortest distance to the surface of workpiece 106. This distance is labelled 110. A radius of curvature is computed for surface 106 at shortest distance point 110, and a center of curvature is determined at 112. determined. Then the normal distance from center of curvature 112 to cutter 102 is computed at 114, and the point (116) at which this normal distance intersects cutter 102 is used to compute a normal to the cutter envelope. This new cutter normal at the cutter point is intersected with surface 106 to in turn define another point on the surface at 118. Based on point 118, a new center of curvature is determined at 120, and the process is repeated until it converges to a stable result. Convergence is obtained when the cutter normal and surface normal are antiparallel to one another, which indicates that the center of curvature of the surface and the center of curvature of the cutter are aligned.
Normal distance positioning allows for the representation of several types of surfaces by analytic equations or geometrical characteristics. For instance, a plane is represented by the equation Ax+By+Cz-D=0, while a sphere is represented by its center point and its radius. Cylinders, cones, quadratics, tabulated cylinders, and ruled surfaces can also be represented. For all these surfaces, the result of a normal distance computation produces a scalar distance S, a pair of points, [CP SP], and a pair of unit vectors, [CN SN]. S represents the distance between the pair of points, where CN and SN are the cutter normal and the surface normal, respectively, CP is a point on the cutter envelope and SP is a point on the surface such that the distance between them is either the local minimal or maximal distance between the cutter and the surface. The vector at the cutter point perpendicular to the cutter envelope is called the cutter normal. The vector at the surface point perpendicular to the surface at SP is called surface normal or SN. At CP and SP, where the normal distance is obtained, the surface normal and cutter normal are either parallel or anti-parallel. The normal distance elements have the property that if the cutter is moved a distance S in the direction of CN, CP and SP will coincide and the cutter will be in contact with the surface. Thus, the set of elements [CP, SP, CN, SN, S] are said to define the normal distance.
The normal distance positioning approach represents an improvement over the surface driven approach in that it can accurately position the cutter to multiple surfaces without gouging. However, in cases where it is desired to machine a feature which cannot be described by a surface, even the normal distance positioning approach may be inadequate to accurately guide the cutter. One such case involves machining a part according to a space curve, that is an edge. Since a space curve has no area, it is not possible to compute a direct distance from the cutter to a space curve. Further, since a space curve has an infinite number of surface normals rather than a single surface normal, it is not possible to compute a surface normal at a point on a space curve. Thus, what is required is a technique to provide a boundary defined by a space curve, which boundary includes the properties of a surface needed to compute a normal distance. Given the normal distance, it would then be possible to accurately position the cutter to the space curve.